关于编辑:如何在Vim中移动到行尾? 您所在的位置:网站首页 vim 光标跳到行尾 关于编辑:如何在Vim中移动到行尾?

关于编辑:如何在Vim中移动到行尾?

2023-09-06 10:19| 来源: 网络整理| 查看: 265

我知道如何在命令模式下移动,特别是跳到行等。但是跳到我当前所在行的末尾的命令是什么?

相关讨论 不到10分钟youtube.com/watch中包含的基本VIM命令?V= 71YTKXUNWMG 花几分钟时间在VimTutor上有什么问题?它已经是VIM安装的一部分,并向您展示了基础知识。

只有$(美元符号)键。您可以使用a移动到行尾并切换到编辑模式(append)。要跳转最后一个非空白字符,可以按g,然后按_键。

与a相反的是(在行首插入模式),作为一个旁白。只按^将把光标放在行首。

相关讨论 跳转到最后一个非空的g_。 有时,g_变体更有用,因为它不包括空白字符。 在视觉模式下工作时,g变量非常有用,因为它允许您在末尾使用不带换行符的行。 当家庭和结束键在普通键盘上工作时,$和^在使用笔记本电脑时需要:) 您应该将^添加到列表中。 同时,i、Ctrl-O、$也应该起作用。 如果您的换行,可以使用g$到达当前换行的末尾。 @你一定在用微软的键盘,因为我没有那把钥匙 @RSW我在Mac Book Pro上 在第三天学习的时候搜索并找出这个答案是很好的。我知道以前有人问过,因为每个人都需要它。它比第一个o和第二个backspace节省了大量的击键。

正如许多人所说:

$让您到达终点

而且:

^或_使您进入行中的第一个非空白字符,以及 0(零)使您到达行首,包括空白 相关讨论 我知道把我们带到了行首,但我不知道0。所以0和都做同样的事情,是吗? @卡米:虽然描述不同,但它们的行为却完全相同。但是pipe |命令可以进行计数,例如3_跳到第三列。

$移动到行中的最后一个字符。

g _转到最后一个非空白字符。

g $转到屏幕行的末尾(当缓冲行跨多个屏幕行包装时)

相关讨论 我觉得G和B是一样的 @戴维亚朗史密斯:埃多克x1〔15〕指的是前一个词的开头,这根本不是一回事。大致相当于$ge。 @你说得对,对不起。 我使用_和g_进行视觉/拉拽,因为$也会复制/删除新行(ln)字符。 对于我来说,$将转到当前屏幕行的末尾(包装时)。我还没弄明白为什么。g_是我找到的到达实际终点的唯一方法。 @以苏克以东十一〔四〕为我包的时候,也到了队尾。我不知道该如何调整它的行为。也许是你的Vimrc给g$重新映射的? @保鲁安-你成功了。我用SPF13,VIMRC线310映射它。现在问题变成了我如何在负载链中稍后取消映射它(只是更改此行将在下次拉SPF13时被覆盖)。 我明白了。我不得不将let g:spf13_no_wrapRelMotion = 1添加到我的.vimrc.before.local文件中,以禁用这种特定于spf13的行为。 我喜欢nnoremap L g_和nnoremap L L,也喜欢操作员等待和视觉模式。更直观,更不容易伸展。 行开始的第一个非空字符的_是否与^相同?

主要问题-行尾

$转到行尾,保持命令模式

a转到行尾,切换到插入模式

相反-行首(技术上是第一个非空白字符)

^转到行首,保持命令模式

(大写I)转到行首,切换到插入模式

进一步-行首(技术上是第一列,与空白无关)

0(零)转到行首,保持命令模式

0I(零后接小写I)进入行首,切换到插入模式

对于那些开始学习vi的人来说,这里是一个很好的vi介绍,通过并列列出vi命令来实现典型的WindowsGUI编辑器光标移动和快捷键。

适用于Windows用户的vi编辑器

相关讨论 与I类似的不是0而是^,因为I和^都指向行的第一个非空白字符,但0转到列零(顾名思义)。 @真的,我想我好像找不到类似于0的东西?(转到行的第一个字符(=0列)并转到插入模式) @弗朗苏:我所知道的唯一一个是埃多克斯一〔16〕。-) @wchargin-感谢您的技术正确性。我已经更新了帖子。

如果当前行环绕可见屏幕到下一行,则可以使用g$到达屏幕行的末尾。

相关讨论 我刚刚发现预挂起的上下命令与g make vim移动光标基于屏幕,而不是基于行。也就是说,gj和gk允许你在一条长线上上下移动。真的很有用。 还发现,键入gw和一些东西似乎会永久地改变j和k的行为。不知道是怎么回事,为什么。有人能解释一下吗? @Druckles:回答有点晚,但是如果你还在想(或者读到这篇文章的其他人)gw和gq是重新格式化文本的命令。(见:h gw和:h gq可能发生的事情是你做了gw{motion}并更改了一些文本,使屏幕行与实际行对应。

在许多情况下,当我们在字符串中时,我们用双引号括起来,或者在编写语句时,我们不希望按Escape键并用箭头键转到该行的末尾,然后按分号(;键)结束该行。在VIMRC文件中写入以下行:

1imap $a

这句台词怎么说?它将ctrl+l映射到一系列命令。它相当于一次按esc(命令模式)、$(行尾)、a(附加)。

相关讨论 谢谢你的邀请。我一直想把ctrl-e添加回我的vim,就像在我的第一台机器上那样添加到行尾,不知道如何添加。 正如公认的答案所说,你可以按A来做同样的事情。 @试析你误会了,这并没有脱离编辑模式,这是相当不错的。 你说得对。vim当然可以让你用更少的时间做更多的事情。@RazorXpress,一个小的调整是imap A,这使得ctrl+l相当于按Esc(退出插入模式),然后按A(附加到行尾)。 我认为更惯用的映射方法是inoremap A。

"结束"键的优点是它可以在正常模式和插入模式下工作。

"$"仅在正常/命令模式下工作,但它也在经典vi编辑器中工作(很好地知道VIM何时不可用)。

相关讨论 你在"插入"模式下做什么?!没有一个普通的正派公民在天亮后去那里。你知道里面发生了什么,是吗?密码消失了,你知道吗?它消失了,再也听不到了。 感谢您的帮助,因为我喜欢在输入后保持插入模式。不幸的是,我的笔记本电脑没有结束键。:(

美元符号:$

还要注意线条(或者物理线条)和屏幕线条之间的区别。行以行尾字符("")结尾。屏幕行是指在终端或屏幕中以一行字符的形式显示的内容。如果你有比屏幕宽度长的物理线条,这两个会分开,这在写电子邮件等时很常见。

这种区别也出现在行尾命令中。

$和0分别移动到物理行或段落的结尾或开头: g$和g0分别移动到屏幕行或段落的末尾或开头。

如果您总是喜欢后一种行为,可以这样重新映射键:

12:noremap 0 g0 :noremap $ g$ 相关讨论 如何到达行的最后一个非空白区?(无论是屏幕线还是物理线) @卡米·埃多克斯1〔7〕。 g_是物理行的最后一个非空白。屏幕线怎么样?

或者有一个显而易见的答案:使用endakbd键转到行尾。

相关讨论 我认为这不适用于所有终端。 是的,Mac终端是我注意到的一个,它劫持了钥匙,并没有把它们传给终端内运行的东西。每当我用Mac电脑的时候,有一件事会让我恼火。 使用VIM的关键是不必使用"end"这样的键。永远不要离开母排。 在Mac上没有结束键。 @Kenorb是我发表评论的时候……但是苹果多年来喜欢删除这些功能。netdna.webdesignerrepot.com/uploads/2009/01/…这实际上是我最喜欢的键盘之一。

按a以从行尾开始进入编辑模式。

可能不相关,但如果您想在当前行之后开始一个新行,则可以在行中的任何位置使用o。

最简单的选择是输入$。如果您使用的是文本块,您可能需要使用命令 和 ,以便分别前后移动段落。

我习惯于在插入模式下(从Windows和我认为是Linux中使用)回到行首和行尾,这是Mac不支持的。这特别令人恼火,因为当我在远程系统上使用VIM时,我也不容易做到。经过一些痛苦的尝试和错误之后,我想出了这些.vimrc行,它们做同样的事情,但在行首绑定ctrl-a,在行尾绑定ctrl-d。(出于某种原因,我猜ctrl-e是保留的,或者至少我找不到绑定它的方法。)享受吧。

12:imap :normal 0 :imap :normal $

这里有一个很好的ASCII控制字符代码图表,其他人也可以使用:

http://www.physics.udel.edu/~watson/scen103/ascii.html

你也可以按ctrl-v+ctrl-键,但这并不能粘贴到像这样的地方。

我看不到标准终端中使用VIM的MacBook热键。希望它能帮助别人。对于MacOS用户(在MacBook Pro 2018上测试):

fn + ← - move to beginning line

fn + → - move to end line

fn + ↑ - move page up

fn + ↓ - move page down

fn + g - move the cursor to the beginning of the document

fn + shift + g - move the cursor to the end of the document

对于最后两个命令,有时需要点击两次。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有